CAT=cat
OUTPUT=output.js
REMOVE_DEBUG=sed -i -e 's/Debug\./\/\/Debug\./g'

generic.js: start.o GownFullConfig.o DownloadManager.o GenericGownFullBuilder.o GownFull.o SimpleTableInputMethod.o RingBufferOutputModifier.o TimerOutputModifier.o
	mv $(OUTPUT) $@
	$(REMOVE_DEBUG) $@

generic_debug.js: start.o Debug.o DebugWindow.o GownFullConfig.o DownloadManager.o GenericGownFullBuilder.o GownFull.o SimpleTableInputMethod.o RingBufferOutputModifier.o TimerOutputModifier.o UnicodeImageOutputModifier.o
	echo "Debug.start();" >> $(OUTPUT)
	mv $(OUTPUT) $@

mobile.js: start.o GownFullConfig.o IEMobileGownFullBuilder.o GownFull.o
	mv $(OUTPUT) $@
	
IEMobileGownFullBuilder.o: IEMobileGownFullBuilder.js Base.o lib.o GownFullConfig.o GownFullBuilder.o
	$(CAT) $< >> $(OUTPUT)

Base.o: Base.js
	$(CAT) $< >> $(OUTPUT)

DataStructure.o: DataStructure.js Base.o
	$(CAT) $< >> $(OUTPUT)

GenericGownFullBuilder.o: GenericGownFullBuilder.js Base.o lib.o GownFullConfig.o GownFullBuilder.o GownFullBrowserDetect.o
	$(CAT) $< >> $(OUTPUT)

GownFullBuilder.o: GownFullBuilder.js Base.o lib.o GownFullConfig.o GFWindow.o
	$(CAT) $< >> $(OUTPUT)

GownFullConfig.o: GownFullConfig.js Base.o
	$(CAT) $< >> $(OUTPUT)

DownloadManager.o: DownloadManager.js Base.o lib.o GownFullConfig.o
	$(CAT) $< >> $(OUTPUT)

GownFull.o: GownFull.js Base.o lib.o GownFullConfig.o GownFullBuilder.o DataStructure.o InputMethod.o OutputModifier.o
	$(CAT) $< >> $(OUTPUT)

GownFullXMLHTTP.o: GownFullXMLHTTP.js Base.o lib.o GownFullConfig.o
	$(CAT) $< >> $(OUTPUT)

InputMethod.o: InputMethod.js Base.o lib.o GownFullConfig.o DownloadManager.o
	$(CAT) $< >> $(OUTPUT)

OutputModifier.o: OutputModifier.js Base.o lib.o GownFullConfig.o
	$(CAT) $< >> $(OUTPUT)

RingBufferOutputModifier.o: RingBufferOutputModifier.js Base.o lib.o OutputModifier.o
	$(CAT) $< >> $(OUTPUT)

TimerOutputModifier.o: TimerOutputModifier.js Base.o lib.o OutputModifier.o
	$(CAT) $< >> $(OUTPUT)

UnicodeImageOutputModifier.o: UnicodeImageOutputModifier.js Base.o lib.o OutputModifier.o
	$(CAT) $< >> $(OUTPUT)

lib.o: lib.js Base.o
	$(CAT) $< >> $(OUTPUT)

GownFullBrowserDetect.o: GownFullBrowserDetect.js Base.o
	$(CAT) $< >> $(OUTPUT)

GFWindow.o: GFWindow.js Base.o lib.o GownFullBrowserDetect.o
	$(CAT) $< >> $(OUTPUT)

SimpleTableInputMethod.o: SimpleTableInputMethod.js Base.o lib.o GownFullConfig.o InputMethod.o
	$(CAT) $< >> $(OUTPUT)

Debug.o: Debug.js Base.o
	$(CAT) $< >> $(OUTPUT)

DebugWindow.o: DebugWindow.js Base.o GFWindow.o
	$(CAT) $< >> $(OUTPUT)

start.o: start.js
	$(CAT) $< > $(OUTPUT)

clean:
	$(RM) *~ $(OUTPUT) generic.js generic_debug.js mobile.js
